local Attr = require("role.Proto").Attr

-- 碎片
SuiPian = {
	{"star",       1,       "byte"},     -- 星级
	{"camp",       1,       "byte"},     -- 阵营
 	{"fullcnt",    1,       "short"},    -- 碎片满的数量
    {"grade",      1,       "byte"},     -- 评分
    {"get",        1,       "byte"},     -- 条件
}

-- 套装信息
SuitNet = {
	{"id",       1,       "int"},           -- 套装号
	{"name",     1,       "string"},        -- 套装名
	{"num",      1,       "short"},         -- 第几件套
	{"attr",     4,        Attr},           -- 套装性能
}

Equip = {
    {"uuid",       1,       "string"},   -- 唯一标识
    {"putUuid",    1,   	"string"},   -- 穿戴者uuid
    {"index",      1,       "short"},    -- 位置索引
	{"level",      1,   	"byte"},     -- 等级:星级
	{"exp",        1,       "int"},   	 -- 神器的经验值
    {"star",       1,   	"byte"},     -- 穿戴星级
	{"baseAttr",   4,       Attr},    	 -- 基础性能
    {"tzAttr",     5,       Attr},    	 -- 拓展属性
	{"suit",       2,       SuitNet},    -- 套装信息
	{"job",        1,       "byte"},     -- 职业专属
	{"jobAttr",    10,      Attr},    	 -- 职业专属属性
	{"camp",       1,       "byte"},     -- 阵营专属
	{"campAttr",   2,       Attr},       -- 阵营专属属性
	{"args",	   2,		"int"},		 -- 额外参数 如果是水晶的话，第一个位表示是否满级
}

FuwenSkillInfo = {
    {"skillID",     1,       "int"},     -- 符文技能id
    {"skillIcon",   1,       "int"},     -- 符文技能icon
    {"skillName",   1,       "string"},  -- 符文技能名字
    {"skillDesc",   1,       "string"},  -- 符文技能描述
    {"isRare",      1,       "int"},     -- 符文技能是否珍惜
    {"lv",          1,       "byte"},    -- 符文技能等级  1 初 2 中 3 高
    {"isOnlyBinshu",1,       "byte"},    -- 兵书专属
}

-- 符文九 零 一 起玩 www.9  01 7 5.com 
FuWen = {
	{"id",			1,		 "int"},	  --id
	{"index",    	1,       "int"},     -- 背包中索引
    {"fenjieGet",   1,       "int"},     -- 分解可获得的符文精华
    {"refine",      1,       "int"},     -- 精炼次数
    {"attrs",       3,       Attr},      -- 符文属性
    {"skills",      2,       FuwenSkillInfo},     -- 符文技能
    {"zhandouli",	1,		"double"},	 -- 符文战力
}

-- 发送数据包
ItemData = {
	{"id",			1,		 "int"},	  --id
	{"cnt",         1,   	 "double"},   --数量
	{"mainType",    1,   	 "byte"},     --主类型 1英雄2道具3装备
	{"subType",     1,   	 "byte"},     --子类型
	{"order",       1,   	 "int"},      --排序id
	{"icon",        1,       "int"},  	  --图标
	{"name",        1,       "string"},   --名字
	{"rare",        1,       "byte"},     --品质
	{"desc1",       1,       "string"},   --描述1：类别
	{"desc2",       1,       "string"},   --描述2：作用
	{"panelID",     1,       "short"},    --面板ID
	{"getway",      5,       "short"},    --获得途径
    {"priceIcon",   1,       "int"},      --出售道具类型icon
	{"price",       1,       "int"},      --出售价格 不一定是金币，可能是其它道具
	{"opflag",		1,		 "short"},	  --操作码
    {"score",       1,       "int"},      --评分
	{"equip",       2,       Equip},      --装备
    {"suipian",     2,       SuiPian},    --碎片
	{"fuwen",		2,       FuWen},      --符文
	{"isShow",      1,       "byte"},     --是否在背包中显示  1 不显示
    {"effects",     1,       "int"},      --特效id
}

-- 下发背包道具（注意这里会分包）
GC_BAG_LIST = {
	{"list",      30,   ItemData}, 
}

-- 道具背包改变
GC_ITEM_BAG_CHANGE = {
	{"itemID",     1,	"int"},
	{"itemCnt",    1,	"double"},
	{"itemData",   2,   ItemData},  -- 只有新增的时候长度为1 其他情况长度为0
}

-- 背包道具出售
CG_BAG_ITEM_SELL = {
	{"id",                1,      "int"},
	{"cnt",               1,      "int"},
}

-- 背包道具出售成功
GC_BAG_ITEM_SELL = {
	{"id",                1,      "int"},
	{"cnt",               1,      "int"},
}

-- 装备道具出售
CG_BAG_EQUIP_SELL = {
	{"bagIndex",          1,      "int"},
}

-- 根据品质出售装备
CG_BAG_EQUIP_SELL_QUALITY = {
    {"quality",          1,      "string"},
}

-- 根据品质出售装备
GC_BAG_EQUIP_SELL_QUALITY = {

}

-- 请求碎片英雄信息预览
CG_SUIPIAN_HERO_QUERY = { 
	{"id",			  1,      "int"},
}

GC_SUIPIAN_HERO_QUERY = {
	{"id",            1,      "int"},
	{"heroSimple",    1,      require("hero.Proto").HeroSimple},
}

-- 碎片召唤
CG_SUIPIAN_SUMMON = {
	{"itemID",        1,      "int"},
	{"itemCnt",       1,      "int"},
}

-- 碎片召唤成功
GC_SUIPIAN_SUMMON = {
	{"isHero",		  1,		"byte"}, --1是英雄 0不是英雄
	{"heroList",	  100,		require("hero.Proto").HeroSimple},	
	{"list",		  100,		ItemData},
	{"fenJieList",	  50,		ItemData},	-- 自动分解获得
}

CG_ITEM_USE = {
	{"id",                1,      "int"},
	{"cnt",               1,      "int"},   --选择物品数量
}

GC_ITEM_USE = {
	{"id",                1,      "int"},	
}

-- 宝箱信息返回
GC_BOX_QUERY = {
    {"item", 50, ItemData},
}

-- 获取宝箱物品
CG_BOX_GET_ITEM = {
    {"itemID", 1, "int"},
	{"index",  1, "int"},
    {"cnt",    1, "int"},
}

-- 道具购买查询(买1/10个)
CG_ITEM_BUY_QUERY = {
	{"id",     	  1, "int"},
}

GC_ITEM_BUY_QUERY = {
	{"id",        1, "int"},
	{"item",      2, ItemData},
	{"canBuy",    2, "int"},
	{"need",      2, ItemData},
	{"needTwo",   2, ItemData}
}

-- 道具购买
CG_ITEM_BUY  = {
	{"id",         1, "int"},
	{"buyType",    1, "int"},	-- 购买1	/10个
	{"cnt",        1, "int"},	-- 购买x组
}
GC_ITEM_BUY = {
	{"id",         1, "int"},	
}

-- 碎片英雄召唤预览
CG_SUIPIAN_HERO_SUMMON_QUERY = { 
	{"id",   1,   "int"},  --道具id
}

GC_SUIPIAN_HERO_SUMMON_QUERY = {
    {"heroSimple",   50,  require("hero.Proto").HeroSimple}
}

GC_SUIPIAN_ITEM_SUMMON_QUERY = {
	{"items", 50, ItemData},
}

-- 通用道具获得
GC_ITEM_GET_LIST = {
	{"popupType",  1,   "byte"},  -- 弹窗类型  0 通用弹窗    1 飘窗
	{"list",  50, ItemData}
}

-- 钻石不足弹出充值面板通用协议
GC_BAG_NORMB = {}



CG_ITEM_SUIPIAN_GETWAR_BY_HERO_ID = {
    {"id",   1, "int"},
    {"camp", 1, "byte"},
    {"star", 1, "byte"},
}

GC_ITEM_SUIPIAN_GETWAR_BY_HERO_ID = {
    {"net",  1, ItemData},
}

-- 根据id获取ItemData
CG_ITEM_GET_BY_ID = {
    {"type",1,"byte"},              -- 类型 1 符文背包 2 普通背包
    {"index",1,"int"},              -- 背包位置
    {"id",1,"int"},                 -- 道具ID
    {"uuid",1,"string"},            -- 玩家uuid
}

GC_ITEM_GET_BY_ID = {
    {"item",1,ItemData},
}

CG_ITEM_GET_BY_ITEM_ID = {
    {"id",1,"int"},                 -- 道具ID
}

GC_ITEM_GET_BY_ITEM_ID = {
    {"item",1,ItemData},
}


-- 通用道具购买
CG_ITEM_BUY_QUERY = {
    {"itemID",1,"int"},         -- 要购买的道具 id
}

GC_ITEM_BUY_QUERY = {
    {"need",1,ItemData},         -- 花费的道具
    {"get",1,ItemData},          -- 获得的道具
}

CG_ITEM_BUY_DO = {
    {"itemID",1,"int"},         -- 购买的道具id
    {"itemCnt",1,"int"},        -- 购买的道具数量
}

GC_ITEM_BUY_DO = {
    {"ret",1,"byte"},           -- 0 购买成功  1 购买失败
}
